/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modelo;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;

/**
 *
 * @author  
 */
public class Detalle_Venta {
    private String id_detalle_venta;
    private double descuento;
    private double precio_producto; 
    private double precio_venta;
    private Venta obj_venta=new Venta();
    private Detalle_Producto obj_det_pro=new Detalle_Producto();

    public double getDescuento() {
        return descuento;
    }

    public void setDescuento(double descuento) {
        this.descuento = descuento;
    }

    public String getId_detalle_venta() {
        return id_detalle_venta;
    }

    public void setId_detalle_venta(String id_detalle_venta) {
        this.id_detalle_venta = id_detalle_venta;
    }

    public Detalle_Producto getObj_det_pro() {
        return obj_det_pro;
    }

    public void setObj_det_pro(Detalle_Producto obj_det_pro) {
        this.obj_det_pro = obj_det_pro;
    }

    public Venta getObj_venta() {
        return obj_venta;
    }

    public void setObj_venta(Venta obj_venta) {
        this.obj_venta = obj_venta;
    }

    public double getPrecio_producto() {
        return precio_producto;
    }

    public void setPrecio_producto(double precio_producto) {
        this.precio_producto = precio_producto;
    }

    public double getPrecio_venta() {
        return precio_venta;
    }

    public void setPrecio_venta(double precio_venta) {
        this.precio_venta = precio_venta;
    }
    
    
      public static boolean agregarDetalle_venta(Detalle_Venta obj_a){
       boolean a=false;
      Connection conexion = null;
      try {
          conexion= ControladorBD.darConexionBD();
          CallableStatement st;
          st=conexion.prepareCall("{call  sp_Registrar_Detalle_Venta(?,?,?,?,?,?)}");
          conexion.setAutoCommit(false);
          st.setDouble(1,obj_a.getDescuento());
          st.setDouble(2,obj_a.getPrecio_producto());
          st.setDouble(3,obj_a.getPrecio_venta());
          
          st.setString(4,obj_a.getObj_venta().getId_venta());
          st.setString(5,obj_a.getObj_det_pro().getSerie_producto());
           
           
     
          st.registerOutParameter(6, java.sql.Types.VARCHAR); //intentar extraer el parametro de salida y darselo al codigo
          st.execute();
          if(st.getString(6)!=null){
              a=true;
          }
          st.close();
          conexion.setAutoCommit(true);
          conexion.close();
     }catch(Exception error){
          System.out.println("Error en agregarDetalle_Venta:"+error.getMessage());
          error.printStackTrace();
    }
      return a;
    
     } 
        public static ArrayList<Detalle_Venta>getDetalle_Venta(){
        ArrayList<Detalle_Venta> arreglo=null;
        Detalle_Venta obj = null;
        Connection conexion = null;
        ResultSet rs= null;

        try{
            conexion = ControladorBD.darConexionBD();
            CallableStatement st = conexion.prepareCall("{call sp_Listar_Detalle_Venta()}");
            rs=st.executeQuery();
            //st(1,estado);
            if(rs.next()){
                arreglo=new ArrayList<Detalle_Venta>();
                do{
                    obj=new Detalle_Venta();
                    obj.setDescuento(rs.getDouble("descuento"));
                    obj.setPrecio_producto(rs.getDouble("precio_producto"));
                    obj.setPrecio_venta(rs.getDouble("precio_venta"));
                   
                    
                    obj.setDescuento(rs.getDouble("Descuento"));
                    obj.setPrecio_producto(rs.getDouble("precio_producto"));
                    obj.setPrecio_venta(rs.getDouble("precio_venta"));
                    Venta ob=new Venta();
                    ob.setId_venta(rs.getString("id_venta"));
                    obj.setObj_venta(ob);
                    Detalle_Producto ob1=new Detalle_Producto();
                    ob1.setSerie_producto(rs.getString("serie_producto"));
                    obj.setObj_det_pro(ob1);
                    arreglo.add(obj);
                }while(rs.next());
            }
        }catch(Exception error) {
            System.out.println("Error en Listado: " + error.getMessage());
            error.getMessage();
        }
        return arreglo;
    
    }


}
